package InputOutputStreamDemo;

import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
 * 设计一个程序，模拟随机点名器
 * ①创建一个stu.txt，在文件中填入一些学生名字，每个学生名字单独一行
 * ②在主方法中读取文件内容，将学生信息保存到集合中
 * ③生成一个随机数，作为集合元素的索引
 * ④根据该索引从集合中获取一个员工姓名，并将该员工从集合中移除掉
 * ⑤将集合中剩余的员工姓名通过BufferedWriter再一次写入到stu.txt文件中
 *
 * */
public class RandomNamePicker {
    public static void main(String[] args) throws Exception {
        //创建一个stu.txt
        String file = "D:\\Demo-Java\\java-demo-hbnu\\stu.txt";
        //创建字符缓冲输入流，读取文件内容
        BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
        //创建一个集合用于将读取的信息保存
        List<String> stu = new ArrayList<>();
        List<String> stu2 = new ArrayList<>();
        //开始读取文件内容
        String line1 = null;
        while ((line1 = bufferedReader.readLine())!=null){
            //读到的内容不为空，则将内容放入stu数组中
            stu.add(line1);
        }
        //生成一个随机数索引
        Random random = new Random();
        int index = random.nextInt(stu.size());
        //移除被点到的学生
        String remove = stu.remove(index);
        System.out.println("被移除的学生为： "+remove);


        try(     //将剩余的学生重新写回stu.txt，创建字符缓冲输出流
                BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file));
                ) {
            for (String s : stu) {
                bufferedWriter.write(s);
                bufferedWriter.newLine();//换行
                bufferedWriter.flush();
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }





    }
}
